home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / -seriously_amiga- / shareware / misc / gpatch / gpatch.doc < prev    next >
Text File  |  1997-12-01  |  6KB  |  158 lines

  1.  
  2. GCompare / GPatch 2.0
  3. ---------------------
  4.  
  5. Author: Ralf Gruner, An der Sense 5a, D-02779 Großschönau, Germany
  6.         ralf.gruner@t-online.de
  7.  
  8.  
  9. GCompare generates patch files for the distribution of updates for any files.
  10. GPatch applies these patches.
  11.  
  12. I know that there are already exist patch generators for Amiga. But when I
  13. begun to work on GPatch I was not yet owner of SAS C (and scompare),
  14. and the freeware version I found in Aminet crashes my machine.
  15. So I have written a new patcher.
  16.  
  17. The features are:
  18. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  19. -The patch file can contain patches for any number of files.
  20.  So you can distribute the update for a lot of versions in one file.
  21.  If the directory structure of your product is unchanged, then the patcher
  22.  will find the required patches without any additional actions of your update
  23.  script.
  24.  And you can put the patches for different files of your product in one
  25.  patch file.
  26.  
  27. -The format of the patchfile is very high optimized.
  28.  GCompare tries some different coding algorithms and selects that with the
  29.  shortest result.
  30.  I do not know too many similar programs, but I think in the most cases
  31.  GCompare produces the shortest patch files of all available patch programs.
  32.  
  33. -To avoid corrupt files, the programs contain a very safe error checking
  34.  (CRC32 signatures for all files). So you can be sure that the result of the
  35.  patch process is perfect if no error messages appear.
  36.  
  37.  
  38. Usage:
  39. ¯¯¯¯¯¯
  40. GCompare and GPatch are shell commands.
  41.  
  42. Syntax:
  43.  
  44.  GCompare <old file> <new file> <patch file> [mode <n>] [quick]
  45.  
  46.  GPatch <old file> <patch file> <new file>
  47.  
  48. If GCompare finds an existing <patch file>, then it appends the patches.
  49.  
  50. GPatch selects the matching patches by file size and CRC signature.
  51.  
  52. If the output contains no error messages, then the actions were successful.
  53. Any fatal error produces a return code greater than 10.
  54.  
  55. You can use the options "mode" and "quick" to select an operating mode:
  56. Without these options GCompare selects the optimal type.
  57. With the option "mode" you can select it and "quick" is a fast mode for very
  58. large files.
  59. The mode values <n> can be the numbers 1 to 4.
  60.  
  61. GCompare needs enough free memory for old file, new file and the patch file.
  62. If GCompare can not allocate enough memory for the list search algorithm
  63. (10 times the filesize of the old file), then it uses the mode 3
  64. (needs only linear search).
  65.  
  66.  
  67. As GCompare example I have included scripts for a fictive program.
  68. The old versions of this program "MyProgram" are in "Archive". The patches
  69. for the program and a manual "MyProgram.readme" will be applied on the
  70. distribution disk "MyProgram".
  71.  
  72.  
  73. Discussion and hints:
  74. ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  75. I have got some mail about the speed and the size of the resulting patch
  76. file.
  77. Some of you found the patch file size much shorter than of other patchers,
  78. some of you not, and all want a faster compare program.
  79.  
  80. Because it is impossible to develop a format of the patch file with always
  81. the shortest result (because the file size depends on the distance of the
  82. matching data and the way to address it) GCompare has four algorithms.
  83. The optimizer selects the best format, but this takes four times of computing
  84. time.
  85. If you want not wait for the optimizer then you can select the file format
  86. with the "mode" argument.
  87. In the most cases "mode 1" provides a good result. If for very large files
  88. GCompare needs too much time then you can use "mode 3". The argument "quick"
  89. is for the fastest search, but then the patch file will be larger.
  90.  
  91. If you compare the results of GCompare with the results of other programs,
  92. you should do this with compressed versions of the patch files too. GCompare
  93. has no built in compression (different from other compare programs with run
  94. length encoding), because I think all distribution files will always be
  95. compressed before they are published.
  96.  
  97.  
  98. There is really no chance to make GCompare much faster. GCompare searches
  99. matching data in the entire old file (and not only in a relative area like
  100. other compare programs). If you have not enough time, I suggest you to use
  101. the quick mode.
  102.  
  103.  
  104. Distribution:
  105. ¯¯¯¯¯¯¯¯¯¯¯¯¯
  106. GCompare and GPatch are freeware programs. You can use it for all your needs
  107. without restrictions. Also use for commercial products is free.
  108.  
  109. If you want to see future updates of the programs, please send me an email
  110. that you use the programs. There are some things to improve yet, but if nobody
  111. need them I can do other things.
  112. Any comments are welcome.
  113.  
  114.  
  115. Ralf
  116.  
  117. -----------------
  118.  
  119. Disclaimer
  120. ¯¯¯¯¯¯¯¯¯¯
  121. THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  122. EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY
  123. OF FITNESS FOR A PARTICULAR PURPOSE.  THOUGH EVERY CARE HAS BEEN TAKEN TO
  124. MAKE THIS PROGRAM SYSTEM-FRIENDLY AND BUGS-FREE, THE ENTIRE RISK AS TO THE
  125. RESULTS, RELIABILITY AND PERFORMANCE OF THIS PROGRAM IS ASSUMED BY YOU.
  126.  
  127. -----------------
  128.  
  129. History:
  130. ¯¯¯¯¯¯¯¯
  131. 19.04.97: GCompare 1.0 / GPatch 1.0
  132. Inital release.
  133.  
  134. 21.04.97: GCompare 1.1 / GPatch 1.1
  135. Bugfix. Better examples.
  136.  
  137. 26.04.97: GCompare 1.2 / GPatch 1.2
  138. Speed improvements.
  139.  
  140. 01.05.97: GCompare 1.3 / GPatch 1.3
  141. Bugfix (GPatch failed on the most files greater than 64KB).
  142.  
  143. 11.05.97: GCompare 1.4 / GPatch 1.4
  144. GCompare uses a faster search algorithm.
  145.  
  146. 01.06.97: GCompare 1.5 / GPatch 1.5
  147. New file format (shorter patch files).
  148. Some small changes.
  149.  
  150. 05.07.97: GCompare 1.6 / GPatch 1.6
  151. Bugfix: Possible counter overflow with large data blocks.
  152.  
  153. 23.11.97: GCompare 2.0 / GPatch 2.0
  154. File size limit increased (from 8MB to 2GB).
  155. Three new coding algorithms.
  156. GCompare uses an optimizer for best results.
  157. Compiled with SAS/C 6.58 now - 20% shorter and 5% faster.
  158.